home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1993 March / 64er_Magazin_93-03_1993_Markt__Technik_de_Side_B.d64 / more lines.ascii < prev    next >
Text File  |  2022-10-26  |  8KB  |  3 lines

  1.  
  2.  
  3. 100        org $1300 ;start = 4864
  4. 110        jmp init  ;aender editor.
  5. 120        jmp line  ;wahle # zeilen.
  6. 130        jmp karset;mach zeichensatz.
  7. 140 init   sei
  8. 150        lda #$20  ;setze variablen
  9. 160        sta $30   ;start nach
  10. 170        sta $32   ;$2000.
  11. 180        sta $34
  12. 190        ldy #$00
  13. 200        sty $2f
  14. 210        sty $31
  15. 220        sty $33
  16. 230        sty $fb
  17. 240        sty $fd
  18. 250        lda #$c0
  19. 260        sta $fc
  20. 270        sta $fe
  21. 280        sta $ff03 ;i/o aus.
  22. 290        ldx #$3f  ;kopier $c000
  23. 300        jsr copyc ;bis $feff.
  24. 310        ldy #$05  ;kopier $ff05
  25. 320        jsr copyb ;bis $ffff
  26. 330        ldx #$01   ;aender kernal
  27. 340 l2     lda new1,x ;und
  28. 350        sta $c15f,x;basic vectors.
  29. 360        sta $c44d,x
  30. 370        lda new2,x
  31. 380        sta $c169,x
  32. 390        sta $c453,x
  33. 400        lda new3,x
  34. 410        sta $ca37,x
  35. 420        lda new4,x
  36. 430        sta $cb7a,x
  37. 440        sta $cb8b,x
  38. 450        sta $cb8e,x
  39. 460        sta $cb9b,x
  40. 470        lda new5,x
  41. 480        sta $0324,x ;einfuhr
  42. 490        lda new6,x
  43. 500        sta $0326,x ;ausfuhr
  44. 510        lda new7,x
  45. 520        sta $033a,x ;tasten
  46. 530        lda new8,x
  47. 540        sta $0302,x ;basic zeilen
  48. 550        lda new9,x
  49. 560        sta $0308,x ;basic befehlen
  50. 570        dex
  51. 580        bpl l2
  52. 590        lda #$ff
  53. 600        sta $c16c
  54. 610        sta $c187
  55. 620        sta $c456
  56. 630        sta $c489
  57. 640        sta $c522
  58. 650        lda #$20    ;32*8=256
  59. 660        sta $ca35   ;link zeilen.
  60. 670        lda #$cc    ;kopier
  61. 680        sta $fb     ;window
  62. 690        lda #$72    ;routine.
  63. 700        ldx #<window
  64. 710        ldy #>window
  65. 720        jsr copya
  66. 730        lda #$d7    ;kopier
  67. 740        sta $fb     ;char
  68. 750        lda #$67    ;routine.
  69. 760        ldx #<char
  70. 770        ldy #>char
  71. 780        jsr copya
  72. 790        lda #<rplot ;aender
  73. 800        sta char+$62;char
  74. 810        lda #>rplot ;routine
  75. 820        sta char+$63;so dass
  76. 830        lda #<ram   ;den neue
  77. 840        sta char+$79;ram-kernal
  78. 850        lda #>ram   ;angesprochen
  79. 860        sta char+$7a;wird.
  80. 870        lda #$4c
  81. 880        sta char+$8c
  82. 890        lda #$63
  83. 900        sta char+$8d
  84. 910        lda #$68
  85. 920        sta char+$8e
  86. 930        lda #$c5    ;kopier
  87. 940        sta $fb     ;if
  88. 950        lda #$52    ;routine
  89. 960        ldx #<if
  90. 970        ldy #>if
  91. 980        jsr copya
  92. 990        lda #$2c
  93. 1000        sta if+$2e  ;bei neue
  94. 1010        lda #<newco2;basic
  95. 1020        sta if+$59  ;befehlen
  96. 1030        lda #>newco2;muss auch
  97. 1040        sta if+$5a  ;die if
  98. 1050        lda #$4c    ;routine
  99. 1060        sta if+$5b  ;geaendert
  100. 1070        lda #$9d    ;werden.
  101. 1080        sta if+$5c
  102. 1090        lda #$52
  103. 1100        sta if+$5d
  104. 1110        jsr tables ;zeilenaddresse.
  105. 1120        lda #$00   ;rom ein
  106. 1130        sta $ff00
  107. 1140        lda #$06   ;bis $2000
  108. 1150        sta $d506  ;bank1=bank0.
  109. 1160        ldx #$06   ;hole anzahl
  110. 1170        jsr $cdda  ;zeilen.
  111. 1180        cli
  112. 1190 line   ldx #$06      ;setze
  113. 1200        jsr $cdcc     ;schirm
  114. 1210        sta window+$14;und
  115. 1220        sta window+$33;window
  116. 1230        tay           ;zu dem
  117. 1240        dey           ;neue
  118. 1250        sty $ed       ;anzahl
  119. 1260        jsr ram       ;zeilen.
  120. 1270        jsr $ca24
  121. 1280        jmp $a845     ;rom ein.
  122. 1290 ram    pha           ;ram ein.
  123. 1300        lda #$30
  124. 1310        jmp $a848
  125. 1320 in     jsr ram    ;input-vector
  126. 1330        jsr $ef06  ;zeigt jetzt auf
  127. 1340        jmp $a845  ;ram-kernal.
  128. 1350 out    jsr ram    ;neue ram
  129. 1360        jsr $ef79  ;output-vector.
  130. 1370        jmp $a845
  131. 1380 kar    jsr ram    ;tasten-rout
  132. 1390        jsr $c5e1  ;nutzt auch
  133. 1400        jmp $a845  ;das neue ram.
  134. 1410 new1   dat textl  ;neue data's
  135. 1420 new2   dat texth  ;fur den
  136. 1430 new3   dat link-1 ;ram-editor.
  137. 1440 new4   dat link
  138. 1450 new5   dat in
  139. 1460 new6   dat out
  140. 1470 new7   dat kar
  141. 1480 new8   dat newbas
  142. 1490 new9   dat newcom
  143. 1500 newbas ldx #$ff  ;basic zeilen-
  144. 1510        stx $3c   ;lese vector
  145. 1520        jsr $4f93 ;geandert
  146. 1530        stx $3d   ;so das auch
  147. 1540        sty $3e   ;direkt eingaben
  148. 1550        jsr $0380 ;mit neue
  149. 1560        tax       ;befehlen erkant
  150. 1570        beq newbas;werden.
  151. 1580        bcc number
  152. 1590        jsr $430a
  153. 1600        jsr $0386
  154. 1610        jmp newco1;der anderung.
  155. 1620 number jmp $4de2
  156. 1630 newcom jsr $0380
  157. 1640 newco1 jsr newco2
  158. 1650        jmp $4af6
  159. 1660 newco2 cmp #$8b  ;neue if-befehl
  160. 1670        beq nif
  161. 1680        cmp #$e0  ;neue char-befehl
  162. 1690        beq nchar
  163. 1700        cmp #$fe  ;ein $fe befehl?
  164. 1710        beq nwin1
  165. 1720        jmp $531a ;alte befehlen.
  166. 1730 nwin1  jsr $0380
  167. 1740        cmp #$1a  ;code $fe+$1a
  168. 1750        beq nwin2 ;=window-befehl
  169. 1760        jsr $0386
  170. 1770        jmp $4b97 ;alte $fe-befehle
  171. 1780 nwin2  jsr $0380 ;das neue
  172. 1790        jmp window;window-befehl.
  173. 1800 nchar  jsr $0380 ;das neue
  174. 1810        jmp char  ;char-befehl.
  175. 1820 nif    jsr $0380 ;das neue
  176. 1830        jmp if    ;if-befehl.
  177. 1840 rplot  jsr ram   ;plot-vector
  178. 1850        jmp $fff0 ;nutzt auch ram.
  179. 1860 copya  sta $fc   ;setze copy
  180. 1870        stx $fd   ;addressen.
  181. 1880        sty $fe
  182. 1890        ldy #$00
  183. 1900 copyb  ldx #$01   ;1 block
  184. 1910 copyc  lda ($fb),y;kopier
  185. 1920        sta ($fd),y;x blocken.
  186. 1930        iny
  187. 1940        bne copyc
  188. 1950        inc $fc
  189. 1960        inc $fe
  190. 1970        dex
  191. 1980        bne copyc
  192. 1990        rts
  193. 2000 tables ldx #$00   ;erzeug
  194. 2010        txa        ;tabellen
  195. 2020        tay        ;mit den
  196. 2030 tab1   pha        ;low und high
  197. 2040        tya        ;addressen
  198. 2050        sta texth,x;von dem start
  199. 2060        pla        ;von bis zu
  200. 2070        sta textl,x;256 zeilen.
  201. 2080        clc
  202. 2090        adc #$28
  203. 2100        bcc tab2
  204. 2110        iny
  205. 2120 tab2   inx
  206. 2130        bne tab1
  207. 2140        rts
  208. 2150 karset sta $fb
  209. 2160        cmp #$11;test zeichenlange
  210. 2170        bcc kar1
  211. 2180        lda #$20;+32 if l>16
  212. 2190        dat $2c
  213. 2200 kar1   lda #$10;+16 if l<=16
  214. 2210        sec
  215. 2220        sbc $fb ;anzahl leere
  216. 2230        sta $fd ;pixelzeile.
  217. 2240        lda $fb ;7-l mod 8 karbyt
  218. 2250        and #$07;nicht kopieren.
  219. 2260        eor #$07
  220. 2270        sta $fc
  221. 2280        lsr $fb ;lange/8
  222. 2290        lsr $fb
  223. 2300        lsr $fb
  224. 2310        lda #$00    ;start zeichen
  225. 2320        sta source+1;satz im rom.
  226. 2330        lda #$d0
  227. 2340        sta source+2
  228. 2350 kar2   lda #$1f   ;vdc datareg 31
  229. 2360        sta $d600  ;zum data andern
  230. 2370        lda $fc
  231. 2380        sta $fe
  232. 2390        inc $fe
  233. 2400        ldy #$00
  234. 2410 kar3   sta $ff03  ;zeichenrom ein.
  235. 2420 source lda $d000,y;hole byte.
  236. 2430        ldx #$00   ;i/o ein.
  237. 2440        stx $ff00
  238. 2450        ldx $fb
  239. 2460        bne kar4
  240. 2470        jsr $cdcf  ;setz byte
  241. 2480        dec $fe    ;byte weglassen?
  242. 2490        bmi kar5   ;jump = no.
  243. 2500        iny        ;byte weglassen.
  244. 2510        bne kar5
  245. 2520 kar4   jsr $cdcf  ;byte x mahl
  246. 2530        dex        ;kopieren.
  247. 2540        bne kar4
  248. 2550        dec $fe   ;setz extra byte?
  249. 2560        bpl kar5   ;no = jump.
  250. 2570        jsr $cdcf  ;setz extra byte
  251. 2580 kar5   iny
  252. 2590        cpy #$08   ;alle bytes
  253. 2600        bne kar3   ;fertig?
  254. 2610        ldy $fd
  255. 2620        beq kar6
  256. 2630        lda #$00   ;setz y mahl
  257. 2640        jsr $cdca  ;leer byte.
  258. 2650        dey
  259. 2660        beq kar6
  260. 2670        tya
  261. 2680        ldx #$1e
  262. 2690        jsr $cdcc
  263. 2700 kar6   lda #$08    ;setze pointer
  264. 2710        clc         ;zu dem
  265. 2720        adc source+1;nachsten
  266. 2730        sta source+1;zeichen.
  267. 2740        lda source+2
  268. 2750        adc #$00
  269. 2760        sta source+2
  270. 2770        cmp #$e0    ;alle zeichen
  271. 2780        bne kar2    ;schon fertig?
  272. 2790        rts
  273. 2800 textl  dat $00
  274. 2810 texth  def textl+256
  275. 2820 link   def texth+256
  276. 2830 window def link+32
  277. 2840 char   def window+$69
  278. 2850 if     def char+$8f
  279.  
  280. ready.
  281.  
  282.  
  283.